Apache Commons Collections লাইব্রেরির FixedOrderComparator একটি শক্তিশালী কম্প্যারেটর যা ডেটার উপাদানগুলির একটি নির্দিষ্ট অর্ডারে তুলনা করার জন্য ব্যবহৃত হয়। এটি একটি Comparator ইন্টারফেস বাস্তবায়ন করে, যা একটি List বা Set এর উপাদানগুলি একটি নির্দিষ্ট ক্রমে সাজাতে সাহায্য করে, সাধারণত আপনি যে ক্রমে চান বা যেভাবে উপাদানগুলি সাজাতে চান তা মেনে।
এটি বিশেষভাবে উপকারী যখন আপনাকে একটি predefined order অনুসারে এলিমেন্টগুলিকে সাজাতে হবে, যেমন একটি List বা Set এর উপাদানগুলিকে কোনো নির্দিষ্ট ক্রমে সাজানো।
FixedOrderComparator মূলত নিম্নলিখিত বৈশিষ্ট্যগুলির জন্য ব্যবহৃত হয়:
FixedOrderComparator এর উদাহরণ দেখলে সহজে বুঝা যাবে কিভাবে এটি কাজ করে। এটি একটি List বা Set এর উপাদানগুলিকে একটি নির্দিষ্ট অর্ডারে সাজাতে সাহায্য করে।
ধরা যাক, আপনার কাছে কয়েকটি স্ট্রিং উপাদান আছে, এবং আপনি চান যে সেগুলো একটি নির্দিষ্ট অর্ডারে সাজানো হোক। আপনি FixedOrderComparator ব্যবহার করে এই অর্ডারটি সুনিশ্চিত করতে পারেন।
import org.apache.commons.collections4.ComparatorUtils;
import org.apache.commons.collections4.comparators.FixedOrderComparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class FixedOrderComparatorExample {
public static void main(String[] args) {
// Create a list of strings
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "date");
// Define the fixed order of the elements
List<String> order = Arrays.asList("banana", "apple", "cherry", "date");
// Create the FixedOrderComparator using the predefined order
FixedOrderComparator<String> comparator = new FixedOrderComparator<>(order);
// Sort the fruits list using the FixedOrderComparator
Collections.sort(fruits, comparator);
// Print the sorted list
System.out.println(fruits); // Output: [banana, apple, cherry, date]
}
}
এখানে:
"apple"
, "banana"
, "cherry"
, "date"
."banana"
, "apple"
, "cherry"
, "date"
.আউটপুট:
[banana, apple, cherry, date]
এটি দেখাচ্ছে কিভাবে একটি predefined order ব্যবহার করে তালিকাটি সাজানো হলো, যা FixedOrderComparator এর মাধ্যমে সম্ভব হয়েছে।
ধরা যাক, আপনি একটি Person ক্লাস তৈরি করেছেন এবং তাদের নামের উপর নির্দিষ্ট অর্ডার দিতে চান।
import org.apache.commons.collections4.comparators.FixedOrderComparator;
import java.util.Arrays;
import java.util.List;
public class FixedOrderComparatorWithCustomObjects {
static class Person {
String name;
Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name;
}
}
public static void main(String[] args) {
List<Person> people = Arrays.asList(new Person("John"), new Person("Alice"), new Person("Bob"));
// Define the fixed order
List<String> order = Arrays.asList("Alice", "Bob", "John");
// Create the FixedOrderComparator using the predefined order
FixedOrderComparator<Person> comparator = new FixedOrderComparator<>(order);
// Sort the list using the FixedOrderComparator
people.sort((p1, p2) -> comparator.compare(p1.getName(), p2.getName()));
// Print the sorted list
System.out.println(people); // Output: [Alice, Bob, John]
}
}
এখানে:
আউটপুট:
[Alice, Bob, John]
এটি দেখাচ্ছে কিভাবে FixedOrderComparator ব্যবহার করে একটি custom object এর উপাদানগুলিকে নির্দিষ্ট অর্ডারে সাজানো যেতে পারে।
FixedOrderComparator হল Apache Commons Collections লাইব্রেরির একটি গুরুত্বপূর্ণ ক্লাস যা একটি predefined order অনুযায়ী Collections এর উপাদানগুলোকে সাজানোর জন্য ব্যবহৃত হয়। এটি Comparator ইন্টারফেসের একটি বাস্তবায়ন যা List বা Set এর উপাদানগুলোকে নির্দিষ্ট ক্রমে সাজাতে সাহায্য করে। এটি খুবই উপকারী যখন আপনি চান যে ডেটার উপাদানগুলো একটি নির্দিষ্ট অর্ডারে সাজানো হোক, যেমন priority, ranking, বা natural ordering অনুসারে।
common.read_more